1. Technical Field of the Invention
The present invention relates to computing device memory systems and, in particular, to a method and apparatus for economically correcting and updating firmware stored in a computing device memory system.
2. Description of the Related Art
General purpose digital computers and other processing devices (hereinafter "computing devices") utilize a wide variety of computer programs to perform various tasks. A computer program comprises a series of instructions or statements arranged in a specific sequence and written in a language executable by the processor of the computing device to achieve a certain result. Such programs include, to name just a few types, operating systems, compilers and applications.
Computer programs may be implemented in either software or firmware, each of which is executed by the hardware of the computing device. Software, as used herein, refers to those computer programs whose instructions and/or data are stored and maintained in the computing device only for so long as power continues to be supplied thereto. Such computer programs are typically semi-permanently stored on magnetic disc and downloaded for volatile storage in a random access memory (RAM) when needed by the computing device. Programming stored in this fashion must be reloaded into the RAM of the computing device each time there is a power interruption.
Firmware, on the other hand, as used herein, refers to those computer programs whose instructions and/or data are stored and maintained permanently in the computing device without the need for the continued application of power. These computer programs are typically stored in non-volatile read only memory (ROM), programmable read only memory (PROM) or erasable programmable read only memory (EPROM). Use of a non-volatile memory obviates the need to reload the programming into the computing device in the event of a power loss or turn-off.
Unlike software, which is relatively easily corrected or updated (for example, by means of modifying or replacing the magnetic media upon which the software is stored), once firmware is stored in the fixed ROM of the computing device it cannot be written over without removing the integrated circuit chip in which the firmware is stored or replacing the circuit board. Thus, in order to correct programming errors or install programming updates issued after the computing device is placed into general public use, the computing device itself must be returned to or serviced by a representative of the manufacturer. The replacement of the integrated circuit chip or circuit board is, however, inconvenient, expensive and time consuming. Considerable effort has accordingly been expended in discovering ways to correct and update device firmware without the need for chip replacement or hand-on access by the manufacturer to the computing device.
The development of electrically erasable programmable read only memory (EEPROM) has obviated to some extent the need for replacing memory chips storing firmware when programming corrections or upgrades are required. The EEPROM comprises a read only memory device whose individual data storage locations (addresses) are erasable and reprogrammable by applying certain electrical signals to the chip. New firmware can thus be stored in the chip without removing the chip from the computing device. Unfortunately, an EEPROM is both much less dense and as much as four times more expensive than a conventional non-volatile ROM, PROM or EPROM chip. More chips (occupying valuable circuit board space) at a significant increase in overall cost are therefore required to provide equivalent computing device storage capacity in comparison to that provided by conventional non-volatile storage devices.
As a result, computing device manufacturers typically include in their memory systems a combination of the various types of available non-volatile memory devices for storing firmware. Portions of the firmware most susceptible to correction or upgrade are stored in the included EEPROM chips, with the remainder of the firmware permanently stored in the conventional non-volatile ROM, PROM or EPROM chips. This solution overcomes to a degree the density, space and cost concerns mentioned above while advantageously providing for some firmware correction and upgrade capability. However, any corrections or updates in that portion of the firmware stored in the conventional ROM, PROM or EPROM chips would still require replacement of the chip or the circuit board.
As the density of EEPROM chips has steadily increased and the cost per chip dropped due to improved semiconductor manufacturing techniques, more and more of the computing device firmware is being stored using EEPROMs rather than conventional non-volatile memory chips. However, fixed ROM is still much more economical than EEPROM. In fact, it is now common for all computing device firmware to be stored in EEPROM. While this does allow for all of the included firmware to be corrected or upgraded in an efficient and convenient manner, significant concerns are being raised over whether firmware integrity can be maintained within this type of storage architecture. The addition of safeguards to the computing device has been proposed for preventing the inadvertent or unintentional corruption of the stored firmware. Such safeguards, however, significantly add to the cost of the computing device.
Accordingly, it now appears that there is some financial and operational benefit to the prior art architecture wherein the storage of firmware is provided by conventional non-volatile ROM-type memories. There continues to be a need, however, in such an architecture for correcting or upgrading of the firmware stored therein without requiring the replacement of either the non-volatile memory or circuit board.